<?php
session_start();

class LoginHandler {
	
	//Privat sträng för LoginSession
	private $LoginSession = "LoginSession";

	//Kollar om användaren är inloggad
	public function IsLoggedIn() 
	{
		if (isset($_SESSION[$this->LoginSession]))
		{
			return TRUE;	
		}		
	}

	//Loggar in användaren
	public function DoLogin($userName, $password) 
	{
				
		switch($userName)
		{
			case 'userOne';
			
				if ($password == "correctPass")
				{
					$_SESSION[$this->LoginSession] = "LoggedIn";
					return TRUE;
				}	

			case 'userTwo';
			
				if ($password == "correctPass")
				{
					$_SESSION[$this->LoginSession] = "LoggedIn";					
					return TRUE;
				}	

			case 'userThree';
			
				if ($password == "correctPass")
				{
					$_SESSION[$this->LoginSession] = "LoggedIn";					
					return TRUE;
				}						
		}	
		
		return FALSE;
		
	}
	
	//Loggar ut användaren
	public function DoLogout() 
	{	
		unset($_SESSION[$this->LoginSession]);
	}
	
	//TESTFUNKTION
	public function Test() 
	{		
		//Loggar ut
		$this->DoLogout();
		echo "Användaren loggas ut..<br/>";
		
		//Testar IsLoggedIn
		if ($this->IsLoggedIn() == TRUE) 
		{
		  	echo "Fel: 'IsLoggedIn' Användare är fortfarande inloggad.";
			return FALSE;
		} 
		
		echo "Användaren är inte längre inloggad..<br/>";
		
		//Testar DoLogin med felaktigt anv-namn & lösenord.
		if ($this->DoLogin("wrongUsername","wrongPass") == TRUE) 
		{
		  	echo "Fel: 'DoLogIn' Användaren kunde logga in med felaktiga uppgifter.";
			return FALSE;
		}
					
		//Testar DoLogin med felaktigt lösenord.
		else if ($this->DoLogin("userOne","wrongPass") == TRUE) 
		{
		  	echo "Fel: 'DoLogIn' Användaren kunde logga in med felaktigt lösenord.";
			return FALSE;
		}	
		
		//Testar DoLogin med korrekta uppgifter. Vi ska loggas in.					
		else if ($this->DoLogin("userTwo","correctPass") == FALSE) 
		{
		  	echo "Fel: 'DoLogIn' Användaren kunde inte logga in med korrekta uppgifter.";
			return FALSE;
		}	
		
		echo "Korrekta inloggningsuppgifter mottagna..<br/>";
				
		//Testar om vi är inloggade.
		if ($this->IsLoggedIn() == FALSE) 
		{
		  	echo "Fel: 'IsLoggedIn' Användaren loggades inte in";
			return FALSE;
		}
		
		echo "Användaren loggas in..<br/>";	
		
		//Loggar ut.
		$this->DoLogout();		
		
		echo "Användaren loggas ut..<br/>";			
		
		//Alla tester är OK
		return TRUE;	
				
	}				
	
}

?>
  